--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_risky_inputs.py v4.7.0-rc.4 (448cd46c) Text, 7.22 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72import T7ee787base64
Tff7b72import T7ee787json
Tff7b72import T7ee787unittest
Tff7b72class T56d364TestBase64DecodeRiskyTb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8fftest_invalid_base64_does_not_crash_display_nameTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787meshchat_utils Tff7b72import Te6edf3parse_lxmf_display_name
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6ffmeshchat_utils not importableTa5d6ff"Tb4b4b4)
Tff7b72for Te6edf3bad Tff7b72in Tb4b4b4[
Ta5d6ff"Ta5d6ff!!!Ta5d6ff"Tb4b4b4,
Ta5d6ff"Tffea00\x00Tffea00\x01Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72* T79c0ff10000Tb4b4b4,
Ta5d6ff"Ta5d6ff Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff=Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff===Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffaTffea00\nTa5d6ffbTffea00\tTa5d6ffcTa5d6ff"Tb4b4b4,
Ta5d6ff"Tffea00\xffTffea00\xfeTa5d6ff"Tb4b4b4,
Tb4b4b4]Tb4b4b4:
Te6edf3result Tff7b72= Te6edf3parse_lxmf_display_nameTb4b4b4(Te6edf3badTb4b4b4, Te6edf3default_valueTff7b72=Ta5d6ff"Ta5d6ffFallbackTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertIsInstanceTb4b4b4(Te6edf3resultTb4b4b4, Tffa657strTb4b4b4)
Tff7b72def Td2a8fftest_invalid_base64_does_not_crash_propagation_node_app_dataTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787meshchat_utils Tff7b72import Tb4b4b4(
Te6edf3parse_lxmf_propagation_node_app_dataTb4b4b4,
Tb4b4b4)
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6ffmeshchat_utils not importableTa5d6ff"Tb4b4b4)
Tff7b72for Te6edf3bad Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ff!!!Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffaTa5d6ff" Tff7b72* T79c0ff5000Tb4b4b4]Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3parse_lxmf_propagation_node_app_dataTb4b4b4(Te6edf3badTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72def Td2a8fftest_invalid_base64_does_not_crash_stamp_costTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787meshchat_utils Tff7b72import Te6edf3parse_lxmf_stamp_cost
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6ffmeshchat_utils not importableTa5d6ff"Tb4b4b4)
Tff7b72for Te6edf3bad Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ff!!!Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffxTa5d6ff" Tff7b72* T79c0ff10000Tb4b4b4]Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3parse_lxmf_stamp_costTb4b4b4(Te6edf3badTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72def Td2a8fftest_base64_decode_direct_invalid_charsTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72for Te6edf3s Tff7b72in Tb4b4b4[Ta5d6ff"Ta5d6ffaTffea00\x00Ta5d6ffbTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffa--bTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffa/b+cTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff Ta5d6ff" Tff7b72* T79c0ff1000Tb4b4b4]Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3base64Tff7b72.Td2a8ffb64decodeTb4b4b4(Te6edf3sTb4b4b4, Te6edf3validateTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72tryTb4b4b4:
Te6edf3base64Tff7b72.Td2a8ffb64decodeTb4b4b4(Ta5d6ff"Ta5d6ff!!!Ta5d6ff"Tb4b4b4, Te6edf3validateTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72class T56d364TestJsonLoadsRiskyTb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8fftest_deeply_nested_json_does_not_crash_message_dictTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787lxmf_utils Tff7b72import Te6edf3convert_db_lxmf_message_to_dict
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6fflxmf_utils not importableTa5d6ff"Tb4b4b4)
Te6edf3deep Tff7b72= Ta5d6ff"Ta5d6ffxTa5d6ff"
Tff7b72for Te6edf3_ Tff7b72in Tffa657rangeTb4b4b4(T79c0ff200Tb4b4b4)Tb4b4b4:
Te6edf3deep Tff7b72= Ta5d6ff'Ta5d6ff{Ta5d6ff"Ta5d6ffaTa5d6ff"Ta5d6ff:Ta5d6ff' Tff7b72+ Te6edf3deep Tff7b72+ Ta5d6ff"Ta5d6ff}Ta5d6ff"
Te6edf3db_msg Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffhashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffsource_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffis_incomingTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffstateTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdeliveredTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffprogressTa5d6ff"Tb4b4b4: T79c0ff100.0Tb4b4b4,
Ta5d6ff"Ta5d6ffmethodTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdirectTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdelivery_attemptsTa5d6ff"Tb4b4b4: T79c0ff0Tb4b4b4,
Ta5d6ff"Ta5d6ffnext_delivery_attempt_atTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffieldsTa5d6ff"Tb4b4b4: Te6edf3deepTb4b4b4,
Ta5d6ff"Ta5d6fftimestampTa5d6ff"Tb4b4b4: T79c0ff123.0Tb4b4b4,
Ta5d6ff"Ta5d6ffrssiTa5d6ff"Tb4b4b4: Tff7b72-T79c0ff50Tb4b4b4,
Ta5d6ff"Ta5d6ffsnrTa5d6ff"Tb4b4b4: T79c0ff10Tb4b4b4,
Ta5d6ff"Ta5d6ffqualityTa5d6ff"Tb4b4b4: T79c0ff100Tb4b4b4,
Ta5d6ff"Ta5d6ffis_spamTa5d6ff"Tb4b4b4: Tff7b72FalseTb4b4b4,
Ta5d6ff"Ta5d6ffcreated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffupdated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Tb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3convert_db_lxmf_message_to_dictTb4b4b4(Te6edf3db_msgTb4b4b4)
Tff7b72except Tb4b4b4(Tf85149RecursionErrorTb4b4b4, Tf85149OverflowErrorTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8fftest_prototype_pollution_keys_in_fields_do_not_crashTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787lxmf_utils Tff7b72import Te6edf3convert_db_lxmf_message_to_dict
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6fflxmf_utils not importableTa5d6ff"Tb4b4b4)
Te6edf3db_msg Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffhashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffsource_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffis_incomingTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffstateTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdeliveredTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffprogressTa5d6ff"Tb4b4b4: T79c0ff100.0Tb4b4b4,
Ta5d6ff"Ta5d6ffmethodTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdirectTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdelivery_attemptsTa5d6ff"Tb4b4b4: T79c0ff0Tb4b4b4,
Ta5d6ff"Ta5d6ffnext_delivery_attempt_atTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffieldsTa5d6ff"Tb4b4b4: Ta5d6ff'Ta5d6ff{Ta5d6ff"Ta5d6ff__proto__Ta5d6ff"Ta5d6ff:Ta5d6ff{Ta5d6ff"Ta5d6ffxTa5d6ff"Ta5d6ff:1},Ta5d6ff"Ta5d6ffconstructorTa5d6ff"Ta5d6ff:Ta5d6ff{Ta5d6ff"Ta5d6ffprototypeTa5d6ff"Ta5d6ff:Ta5d6ff{Ta5d6ff"Ta5d6ffyTa5d6ff"Ta5d6ff:1}}}Ta5d6ff'Tb4b4b4,
Ta5d6ff"Ta5d6fftimestampTa5d6ff"Tb4b4b4: T79c0ff123.0Tb4b4b4,
Ta5d6ff"Ta5d6ffrssiTa5d6ff"Tb4b4b4: Tff7b72-T79c0ff50Tb4b4b4,
Ta5d6ff"Ta5d6ffsnrTa5d6ff"Tb4b4b4: T79c0ff10Tb4b4b4,
Ta5d6ff"Ta5d6ffqualityTa5d6ff"Tb4b4b4: T79c0ff100Tb4b4b4,
Ta5d6ff"Ta5d6ffis_spamTa5d6ff"Tb4b4b4: Tff7b72FalseTb4b4b4,
Ta5d6ff"Ta5d6ffcreated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffupdated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Tb4b4b4}
Te6edf3result Tff7b72= Te6edf3convert_db_lxmf_message_to_dictTb4b4b4(Te6edf3db_msgTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertIsInstanceTb4b4b4(Te6edf3resultTb4b4b4, Tffa657dictTb4b4b4)
Tff7b72def Td2a8fftest_huge_fields_string_does_not_hangTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787lxmf_utils Tff7b72import Te6edf3convert_db_lxmf_message_to_dict
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6fflxmf_utils not importableTa5d6ff"Tb4b4b4)
Te6edf3db_msg Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffhashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffsource_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffis_incomingTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffstateTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdeliveredTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffprogressTa5d6ff"Tb4b4b4: T79c0ff100.0Tb4b4b4,
Ta5d6ff"Ta5d6ffmethodTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdirectTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdelivery_attemptsTa5d6ff"Tb4b4b4: T79c0ff0Tb4b4b4,
Ta5d6ff"Ta5d6ffnext_delivery_attempt_atTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffieldsTa5d6ff"Tb4b4b4: Ta5d6ff'Ta5d6ff{Ta5d6ff"Ta5d6ffkTa5d6ff"Ta5d6ff:Ta5d6ff"Ta5d6ff' Tff7b72+ Ta5d6ff"Ta5d6ffvTa5d6ff" Tff7b72* T79c0ff50000 Tff7b72+ Ta5d6ff'Ta5d6ff"Ta5d6ff}Ta5d6ff'Tb4b4b4,
Ta5d6ff"Ta5d6fftimestampTa5d6ff"Tb4b4b4: T79c0ff123.0Tb4b4b4,
Ta5d6ff"Ta5d6ffrssiTa5d6ff"Tb4b4b4: Tff7b72-T79c0ff50Tb4b4b4,
Ta5d6ff"Ta5d6ffsnrTa5d6ff"Tb4b4b4: T79c0ff10Tb4b4b4,
Ta5d6ff"Ta5d6ffqualityTa5d6ff"Tb4b4b4: T79c0ff100Tb4b4b4,
Ta5d6ff"Ta5d6ffis_spamTa5d6ff"Tb4b4b4: Tff7b72FalseTb4b4b4,
Ta5d6ff"Ta5d6ffcreated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffupdated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Tb4b4b4}
Tff7b72tryTb4b4b4:
Te6edf3convert_db_lxmf_message_to_dictTb4b4b4(Te6edf3db_msgTb4b4b4)
Tff7b72except Tb4b4b4(Tf85149MemoryErrorTb4b4b4, Te6edf3jsonTff7b72.Td2a8ffJSONDecodeErrorTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72def Td2a8fftest_invalid_json_fields_returns_safe_dictTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787lxmf_utils Tff7b72import Te6edf3convert_db_lxmf_message_to_dict
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6fflxmf_utils not importableTa5d6ff"Tb4b4b4)
Te6edf3db_msg Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4: T79c0ff1Tb4b4b4,
Ta5d6ff"Ta5d6ffhashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffhTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffsource_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdestination_hashTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffis_incomingTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffstateTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdeliveredTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffprogressTa5d6ff"Tb4b4b4: T79c0ff100.0Tb4b4b4,
Ta5d6ff"Ta5d6ffmethodTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffdirectTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdelivery_attemptsTa5d6ff"Tb4b4b4: T79c0ff0Tb4b4b4,
Ta5d6ff"Ta5d6ffnext_delivery_attempt_atTa5d6ff"Tb4b4b4: Tff7b72NoneTb4b4b4,
Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6fftTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcontentTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffieldsTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffnot json at all Ta5d6ff{{Ta5d6ff{Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftimestampTa5d6ff"Tb4b4b4: T79c0ff123.0Tb4b4b4,
Ta5d6ff"Ta5d6ffrssiTa5d6ff"Tb4b4b4: Tff7b72-T79c0ff50Tb4b4b4,
Ta5d6ff"Ta5d6ffsnrTa5d6ff"Tb4b4b4: T79c0ff10Tb4b4b4,
Ta5d6ff"Ta5d6ffqualityTa5d6ff"Tb4b4b4: T79c0ff100Tb4b4b4,
Ta5d6ff"Ta5d6ffis_spamTa5d6ff"Tb4b4b4: Tff7b72FalseTb4b4b4,
Ta5d6ff"Ta5d6ffcreated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffupdated_atTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff2024-01-01T00:00:00ZTa5d6ff"Tb4b4b4,
Tb4b4b4}
Te6edf3result Tff7b72= Te6edf3convert_db_lxmf_message_to_dictTb4b4b4(Te6edf3db_msgTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertIsInstanceTb4b4b4(Te6edf3resultTb4b4b4, Tffa657dictTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffassertInTb4b4b4(Ta5d6ff"Ta5d6fffieldsTa5d6ff"Tb4b4b4, Te6edf3resultTb4b4b4)
Tff7b72class T56d364TestPathAndStringRiskyTb4b4b4(Te6edf3unittestTff7b72.Td2a8ffTestCaseTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8fftest_interface_config_with_null_byteTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787interface_config_parser Tff7b72import Tb4b4b4(
Te6edf3InterfaceConfigParserTb4b4b4,
Tb4b4b4)
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6ffinterface_config_parser not importableTa5d6ff"Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3InterfaceConfigParserTff7b72.Td2a8ffparseTb4b4b4(Ta5d6ff"Ta5d6ff[section]Tffea00\nTa5d6ffnameTffea00\x00Ta5d6ff=valueTa5d6ff"Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
Tff7b72def Td2a8fftest_interface_config_very_long_lineTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787interface_config_parser Tff7b72import Tb4b4b4(
Te6edf3InterfaceConfigParserTb4b4b4,
Tb4b4b4)
Tff7b72except Tf85149ImportErrorTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffskipTestTb4b4b4(Ta5d6ff"Ta5d6ffinterface_config_parser not importableTa5d6ff"Tb4b4b4)
Tff7b72tryTb4b4b4:
Te6edf3InterfaceConfigParserTff7b72.Td2a8ffparseTb4b4b4(Ta5d6ff"Ta5d6ff[x]Tffea00\nTa5d6ffkey=Ta5d6ff" Tff7b72+ Ta5d6ff"Ta5d6ffvTa5d6ff" Tff7b72* T79c0ff100000Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72pass
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────